Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS 您所在的位置:网站首页 bochs windows7下载 Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS

Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS

2023-11-28 10:53| 来源: 网络整理| 查看: 265

Ubuntu20.04/18.04安装Bochs2.6.9编译运行GeekOS

请注意:博主仅测试在Ubuntu18和Ubuntu20上成功安装Bochs-2.6.9、nasm-2.08.02、geekos-0.3.0,其它版本可能会出现不兼容的情况。若安装调试过程中出现各种奇奇怪怪的错误,请百度报错信息,或给我留言。博主也是在多次失败的情况下,总结各位大佬的解决方案,才成功的。

1.在电脑上安装Linux操作系统

安装过程就不多介绍了,放个Ubuntu的种子,需要的自行下载

Ubuntu 18.04 Desktop (amd64)

magnet:?xt=urn:btih:286D2E5B4F8369855328336AC1263AE02A7A60D5&dn=ubuntu-18.04.4-desktop-amd64.iso

Ubuntu 20.04 Desktop (amd64)

magnet:?xt=urn:btih:9FC20B9E98EA98B4A35E6223041A5EF94EA27809&dn=ubuntu-20.04-desktop-amd64.iso&xl=2715254784

Ubuntu20安装成功如下图 Ubuntu20图

2.编译安装Bochs需要准备好安装环境

安装Bochs之前需要联网安装下面这些软件:

sudo apt-get install build-essential sudo apt-get install xorg-dev sudo apt-get install bison sudo apt-get install libgtk2.0-dev sudo apt-get install gcc-multilib

下载安装速度可能较慢,需要点耐心,如果下载中出现失败,用手机开个热点给电脑试下

3.安装Bochs2.6.9

下载Bochs2.6.9 进入链接: 下载地址. 找到bochs-2.6.9.tar.gz并下载保存

解压bochs-2.6.9.tar.gz 可以直接鼠标右键选择“提取到此处”

安装Bochs 进入bochs-2.6.9目录 在终端输入下列命令

sudo ./configure --enable-debugger --enable-disasm sudo make sudo make install

启动Bochs 直接在终端输入bochs启动,这里可能会报错,不用着急,百度可以解决。 若没有报错,则会出现Bochs的菜单 但是建议选项为[2],没有找到配置文件 1

配置Bochs 当我们在终端输入bochs后, Bochs会自己在当前目录顺序寻找以下文件作为默认配置文件: .bochsrc bochsrc bochsrc.txt bochsrc.bxrc(仅对Windows有效) 我们可以自己创建一个名为.bochsrc的文件,来指定Bochs配置我们想要的虚拟机 (请将.bochsrc文件放在 geekos-0.3.0/src/project0/build 目录下。没有geekos?请看第4步!在此目录下会有一个自带的.bochsrc文件,但它是隐藏文件) 在终端输入

sudo gedit .bochsrc

粘贴以下内容(注意这里要确保romimage和vgaromimage这两项的路径是正确的,不然虚拟机启动时会提示“couldn’t open ROM image file”的错误,还有Bochs的版本不一样的话,键盘设置的方式也不太一样):

################################################################# # Bochs的配置文件 # Configuration file for Bochs ################################################################# # how much memory the emulated machine will have megs: 32 # filenameof ROM images romimage:file=/usr/local/share/bochs/BIOS-bochs-latest vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest # which disk image will be used 这个是启动软盘 floppya:1_44=fd.img, status=inserted # choose the boot disk 确定启动方式 boot: floppy # where do we send log messages? log: bochsout.txt # disable the mouse mouse: enabled=0 # enable key mapping ,using US layout as default keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map

保存退出

4.安装nasm和下载GeekOS 下载安装nasm 进入链接: 下载地址. 选择nasm-2.08.02.tar.gz,下载保存 解压后进入nasm-2.08.02目录 依次输入以下命令: ./configure sudo make sudo make install

再在终端输入nasm -version 出现2.08.02,OK继续!

下载GeekOS 直接去GeekOS下载 下载完成后解压 5.编译GeekOS

进入目录 geekos-0.3.0/src/project0/build 终端输入

sudo make depend sudo make

会报错,因为Makefile在make时将warnings全部视为了errors 于是我们打开当前目录下的Makefile 3

sudo gedit Makefile

找到第149行的-Werror:

CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror

修改为:

CC_GENERAL_OPTS := $(GENERAL_OPTS)

在Makefile文件的第148行 GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) 后面添加编译选项: (高版本的Ubuntu会有优化问题,导致project运行时线程报错,所以此处可以把-O改成-O0,取消优化)

-fno-stack-protector

然后把Makefile文件中的100行至109行修改为如下内容:

TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32 # Host C compiler. This is used to compile programs to execute on # the host platform, not the target (x86) platform. On x86/ELF # systems, such as Linux and FreeBSD, it can generally be the same # as the target C compiler. HOST_CC := gcc -m32 # Target linker. GNU ld is probably to only one that will work. TARGET_LD := $(TARGET_CC_PREFIX)ld -m elf_i386

然后输入命令:

sudo make clean sudo make depend sudo make

会出现

cat geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin > fd.img

3

即为编译成功 注意:这里的fd.img是软盘文件,和.bochsrc文件相关,非常重要!如果启动Bochs出现黑色界面,但是有弹窗报错,多半和它有关。

6.运行GeekOS

进入目录 geekos-0.3.0/src/project0/build 终端输入:bochs 会出现Bochs菜单,且建议选项为[6]意思是开始模拟 输入"6"弹出黑色页面,然后再在命令行输入"c" 4

如果出现错误提示,可能是因为软盘映像中没有找到编译好的可执行程序,所以需要我们导入程序。 可以自己编写一段程序,也可以使用自带的示例程序,将编译好的引导扇区写进软盘。

Linux下自带了dd命令可以很方便地进行软盘读写:

sudo dd if=main.o of=fd.img bs=512 count=1 conv=notrunc

("main.o"是要写入软盘的程序文件,“fd.img"是目的软盘,可以用自己建的软盘"a.img”,也可以用自动生成的)

重新运行GeekOS,看到Bochs界面上出现的“Welcome to GeekOS!”,恭喜你成功了!

感谢观看

如果文章对你有用,点个赞再走吧,有问题的可以评论区讨论。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有